#ifndef __CAMERA_HPP__
#define __CAMERA_HPP__ 1

#include <string>

#include <glm/glm.hpp>

struct CameraData
{
	CameraData(const std::string& name, glm::vec3 pos, glm::vec3 target, glm::vec3 up, float aspect, float fov, float zNear, float zFar);

	std::string name;

	glm::vec3 pos;
	glm::vec3 target;
	glm::vec3 up;

	float aspect;
	float fov;

	float zNear;
	float zFar;
};

class CCamera
{
public:
	CCamera(CameraData* data);

	CameraData* GetCameraData();
	void SetCameraData(CameraData* data);

private:
	CameraData* data;
};

#endif